package com.cy.stone.system.infrastructure.database.table;

import com.mybatisflex.core.query.QueryColumn;
import com.mybatisflex.core.table.TableDef;

/**
 * 菜单资源表 表定义层。
 *
 * @author Wings
 * @since 2023-12-09
 */
public class MenuTableDef extends TableDef {

    /**
     * 菜单资源表
     */
    public static final MenuTableDef MENU_ENTITY = new MenuTableDef();

    /**
     * 主键
     */
    public final QueryColumn ID = new QueryColumn(this, "ID");

    /**
     * 图标标识
     */
    public final QueryColumn ICON = new QueryColumn(this, "ICON");

    /**
     * 路由地址
     */
    public final QueryColumn PATH = new QueryColumn(this, "PATH");

    /**
     * 权限码
     */
    public final QueryColumn PERMS = new QueryColumn(this, "PERMS");

    /**
     * 备注
     */
    public final QueryColumn REMARK = new QueryColumn(this, "REMARK");

    /**
     * 菜单状态【0-正常 1-停用】
     */
    public final QueryColumn STATUS = new QueryColumn(this, "STATUS");

    /**
     * 是否缓存【0-否 1-是】
     */
    public final QueryColumn IS_CACHE = new QueryColumn(this, "IS_CACHE");

    /**
     * 是否外链【0-否 1-是】
     */
    public final QueryColumn IS_FRAME = new QueryColumn(this, "IS_FRAME");

    /**
     * 版本号
     */
    public final QueryColumn VERSION = new QueryColumn(this, "VERSION");

    /**
     * 显示状态【0-不显示 1-显示】
     */
    public final QueryColumn VISIBLE = new QueryColumn(this, "VISIBLE");

    /**
     * 创建人
     */
    public final QueryColumn CREATE_BY = new QueryColumn(this, "CREATE_BY");

    /**
     * 菜单码
     */
    public final QueryColumn MENU_CODE = new QueryColumn(this, "MENU_CODE");

    /**
     * 菜单名称
     */
    public final QueryColumn MENU_NAME = new QueryColumn(this, "MENU_NAME");

    /**
     * 菜单类型【C-目录 M-菜单 B-按钮】
     */
    public final QueryColumn MENU_TYPE = new QueryColumn(this, "MENU_TYPE");

    /**
     * 显示顺序
     */
    public final QueryColumn ORDER_NUM = new QueryColumn(this, "ORDER_NUM");

    /**
     * 父级ID
     */
    public final QueryColumn PARENT_ID = new QueryColumn(this, "PARENT_ID");

    /**
     * 更新人
     */
    public final QueryColumn UPDATE_BY = new QueryColumn(this, "UPDATE_BY");

    /**
     * 组件路径
     */
    public final QueryColumn COMPONENT = new QueryColumn(this, "COMPONENT");

    /**
     * 逻辑删除标识【0-未删除 1-已删除】
     */
    public final QueryColumn IS_DELETED = new QueryColumn(this, "IS_DELETED");

    /**
     * 创建时间
     */
    public final QueryColumn CREATE_TIME = new QueryColumn(this, "CREATE_TIME");

    /**
     * 路由参数
     */
    public final QueryColumn QUERY_PARAM = new QueryColumn(this, "QUERY_PARAM");

    /**
     * 更新时间
     */
    public final QueryColumn UPDATE_TIME = new QueryColumn(this, "UPDATE_TIME");

    /**
     * 所有字段。
     */
    public final QueryColumn ALL_COLUMNS = new QueryColumn(this, "*");

    /**
     * 默认字段，不包含逻辑删除或者 large 等字段。
     */
    public final QueryColumn[] DEFAULT_COLUMNS = new QueryColumn[]{ID, MENU_CODE, MENU_NAME, PARENT_ID, ORDER_NUM, PATH, COMPONENT, QUERY_PARAM, IS_FRAME, IS_CACHE, MENU_TYPE, VISIBLE, PERMS, ICON, CREATE_TIME, CREATE_BY, UPDATE_TIME, UPDATE_BY, VERSION, IS_DELETED, STATUS, REMARK};

    public MenuTableDef() {
        super("", "ST_MENU");
    }

}
